package com.zjuee.base.model.common.company;

import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.zjuee.base.model.Description;
import com.zjuee.base.valid.Insert;
import lombok.*;
import lombok.experimental.Accessors;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.Date;

/**
 * 企业信息表
 *
 * @author wu liang
 * @since 1.0
 */
@Data
@TableName("bc_company_info")
@NoArgsConstructor
@AllArgsConstructor
@Accessors(chain = true)
@ToString(callSuper = true)
@EqualsAndHashCode(callSuper = true)
public class Company extends Description {

  /**企业编号(统一征信代码)*/
  @JsonInclude(JsonInclude.Include.NON_NULL)
  @NotBlank(message = "bciCode can't be empty", groups = {Insert.class})
  private String bciCode;

  /**全国平台企业ID*/
  @JsonInclude(JsonInclude.Include.NON_NULL)
  private String bciNational;

  /**省平台企业ID*/
  @JsonInclude(JsonInclude.Include.NON_NULL)
  private Long bciProvinceId;

  /**原平台企业ID*/
  @JsonInclude(JsonInclude.Include.NON_NULL)
  private Long bciSourceId;

  /**企业名称*/
  @JsonInclude(JsonInclude.Include.NON_NULL)
  @NotBlank(message = "bciName can't be empty", groups = {Insert.class})
  private String bciName;


  /**企业类别(1：普通企业  2：小微企业)*/
  @JsonInclude(JsonInclude.Include.NON_NULL)
  @NotNull(message = "bciModel can't be empty", groups = {Insert.class})
  private Integer bciModel;

  /**企业类型(1：危险废物产生单位，2：危险废物经营单位，3：危险废物收集单位，4：一般工业固废产生单位，5：一般工业固废处置单位，7：危险废物小微收集点)*/
  @JsonInclude(JsonInclude.Include.NON_NULL)
  @NotBlank(message = "bciType can't be empty", groups = {Insert.class})
  private String bciType;

  /**行业类别*/
  @JsonInclude(JsonInclude.Include.NON_NULL)
  @NotBlank(message = "bciTag can't be empty", groups = {Insert.class})
  private String bciTag;

  /**企业规模*/
  @JsonInclude(JsonInclude.Include.NON_NULL)
  @NotBlank(message = "bciScale can't be empty", groups = {Insert.class})
  private String bciScale;

  /**行业分类*/
  @JsonInclude(JsonInclude.Include.NON_NULL)
  @NotBlank(message = "bciCategory can't be empty", groups = {Insert.class})
  private String bciCategory;

  /**行业大类*/
  @JsonInclude(JsonInclude.Include.NON_NULL)
  @NotBlank(message = "bciBgroup can't be empty", groups = {Insert.class})
  private String bciBgroup;

  /**行业中类*/
  @JsonInclude(JsonInclude.Include.NON_NULL)
  @NotBlank(message = "bciMgroup can't be empty", groups = {Insert.class})
  private String bciMgroup;

  /**行业小类*/
  @JsonInclude(JsonInclude.Include.NON_NULL)
  @NotBlank(message = "bciSgroup can't be empty", groups = {Insert.class})
  private String bciSgroup;

  /**行政区划(省)*/
  @JsonInclude(JsonInclude.Include.NON_NULL)
  @NotBlank(message = "bciProvince can't be empty", groups = {Insert.class})
  private String bciProvince;

  /**行政区划(市)*/
  @JsonInclude(JsonInclude.Include.NON_NULL)
  @NotBlank(message = "bciCity can't be empty", groups = {Insert.class})
  private String bciCity;

  /**行政区划(区/县)*/
  @JsonInclude(JsonInclude.Include.NON_NULL)
  @NotBlank(message = "bciArea can't be empty", groups = {Insert.class})
  private String bciArea;

  /**行政区划(街道)*/
  @JsonInclude(JsonInclude.Include.NON_NULL)
  @NotBlank(message = "bciStreet can't be empty", groups = {Insert.class})
  private String bciStreet;

  /**注册地址*/
  @JsonInclude(JsonInclude.Include.NON_NULL)
  @NotBlank(message = "bciRegisterAddress can't be empty", groups = {Insert.class})
  private String bciRegisterAddress;

  /**经度*/
  @JsonInclude(JsonInclude.Include.NON_NULL)
  @NotNull(message = "bciLongi can't be empty", groups = {Insert.class})
  private Double bciLongi;

  /**纬度*/
  @JsonInclude(JsonInclude.Include.NON_NULL)
  @NotNull(message = "bciLongi can't be empty", groups = {Insert.class})
  private Double bciLati;

  /**法人代表*/
  @JsonInclude(JsonInclude.Include.NON_NULL)
  @NotBlank(message = "bciLegalDelegate can't be empty", groups = {Insert.class})
  private String bciLegalDelegate;

  /**法人代表电话*/
  @JsonInclude(JsonInclude.Include.NON_NULL)
  @NotBlank(message = "bciLegalDelegatePhone can't be empty", groups = {Insert.class})
  private String bciLegalDelegatePhone;

  /**环保负责人*/
  @JsonInclude(JsonInclude.Include.NON_NULL)
  @NotBlank(message = "bciEnvironDelegate can't be empty", groups = {Insert.class})
  private String bciEnvironDelegate;

  /**环保负责人电话*/
  @JsonInclude(JsonInclude.Include.NON_NULL)
  @NotBlank(message = "bciEnvironDelegatePhone can't be empty", groups = {Insert.class})
  private String bciEnvironDelegatePhone;

  /**固废负责人*/
  @JsonInclude(JsonInclude.Include.NON_NULL)
  @NotBlank(message = "bciGarbageDelegate can't be empty", groups = {Insert.class})
  private String bciGarbageDelegate;

  /**固废负责人电话*/
  @JsonInclude(JsonInclude.Include.NON_NULL)
  @NotBlank(message = "bciGarbageDelegatePhone can't be empty", groups = {Insert.class})
  private String bciGarbageDelegatePhone;

  /**传真号码*/
  @JsonInclude(JsonInclude.Include.NON_NULL)
  private String bciFax;

  /**电子邮箱*/
  @JsonInclude(JsonInclude.Include.NON_NULL)
  private String bciEmail;

  /**邮政编码*/
  @JsonInclude(JsonInclude.Include.NON_NULL)
  private String bciPostalCode;

  /**是否上传全国平台 0：未上传 1：已上传*/
  @JsonInclude(JsonInclude.Include.NON_NULL)
  private Integer bciIsUpload;

  /**是否上传省平台 0：未上传 1：已上传*/
  @JsonInclude(JsonInclude.Include.NON_NULL)
  private Integer bciIsUploadProvince;

  /**数据来源 0：省平台*/
  @JsonInclude(JsonInclude.Include.NON_NULL)
  private String bciSource;

  /**是否操作 1：可操作 2：不可操作*/
  @JsonInclude(JsonInclude.Include.NON_NULL)
  private Integer bciIsOperate;

  /**环评文件存储路径*/
  @JsonInclude(JsonInclude.Include.NON_NULL)
  private String bciEiaUrl;

  /**企业状态 1：启用  2：停用*/
  @JsonInclude(JsonInclude.Include.NON_NULL)
  private Integer bciStatus;

  /**审核人*/
  @JsonInclude(JsonInclude.Include.NON_NULL)
  private String bciAudtor;

  /**审核状态 1：刚注册 2：待审核 3：审核通过 4：审核未通过*/
  @JsonInclude(JsonInclude.Include.NON_NULL)
  private Integer bciAuditStatus;

  /**审核时间*/
  @JsonInclude(JsonInclude.Include.NON_NULL)
  private Date bciAuditTime;

  /**审核意见*/
  @JsonInclude(JsonInclude.Include.NON_NULL)
  private String bciAuditMind;

  /**备注*/
  @JsonInclude(JsonInclude.Include.NON_NULL)
  private String bciRemark;

  /**创建人*/
  @JsonInclude(JsonInclude.Include.NON_NULL)
  private String bciCreator;

  /**创建时间*/
  @JsonInclude(JsonInclude.Include.NON_NULL)
  private Date bciCreateTime;

  /**修改人*/
  @JsonInclude(JsonInclude.Include.NON_NULL)
  private String bciModifier;
  
  /**修改时间*/
  @JsonInclude(JsonInclude.Include.NON_NULL)
  private Date bciModifiedTime;

  /**注册手机号*/
  @JsonInclude(JsonInclude.Include.NON_NULL)
  private String bciRegisterMobile;

  /**主用户ID*/
  @JsonInclude(JsonInclude.Include.NON_NULL)
  private Long mbbId;
}